import { defineStore } from 'pinia'

//定义数据并且对外暴露
// store就是定义共享状态的包装对象
// 内部包含四个属性： id 唯一标识 state 完整类型推理，推荐使用箭头函数 存放的数据 getters 类似属性计算，存储放对数据
// 操作的方法  actions 存储数据的复杂业务逻辑方法
// 理解： store类似Java中的实体类， id就是类名， state 就是装数据值的属性  getters就是get方法，actions就是对数据操作的其他方法
export const updateStatus = defineStore('status',
    {
        //必须唯一
        state: () => { // state中用于定义数据
            return {
                needfresh: false, // 是否需要刷新
                reshId: 0, // 刷新id
            }
        },
        getters: {// 用于定义一些通过数据计算而得到结果的一些方法 一般在此处不做对数据的修改操作
            // getters中的方法可以当做属性值方式使用
            getNeedFresh() {
                return this.needfresh
            },
            getReshId() {
                return this.reshId
            }
        },
        actions: { // 用于定义一些对数据修改的方法
            changeNeedFresh() {
                this.needfresh = !this.needfresh
            },
            setReshId(id) {
                this.reshId = id
            }
        }
    }
)